Data transmission networks are widely used in multimedia communications systems. “Data transmission network”, as used herein, generally refers to a group of two or more data operative devices linked together via a communications medium, such as wired (e.g., Ethernet) or wireless (e.g., 802.11x compliant) communications links. Non-limiting examples of data transmission networks include wired and wireless Local Area Networks (LANs) and Wide Area Networks (WANs). “Data operative device”, as used herein, generally refers to a device that receives and/or provides data to/from a data transmission network, such as a personal computing device or digital television, for example.
Ethernet, one of the most widely implemented LAN standards, has become a popular technology for residential data transmission networks. A primary motivator for installing a wired Ethernet may be for sharing a broadband connection with multiple PCs in a household. The broadband connection may typically be a Cable or DSL modem that provides domain interconnectivity with the global interconnection of computers and computer networks commonly referred to as the Internet. Ethernet is often the technology of choice since many commercially available personal computers (PCs), cable modems and DSL modems already support networking over Ethernet.
Applications that take advantage of existing Ethernet infrastructures are emerging. One such application is the distribution of media data such as voice, video and music. There are many potential applications for sending digital video across a home network. Applications include video distribution from a satellite set-top box, music distribution from the “MyMusic” directory on a personal computer (PC) (e.g., AudioTron), and sharing video among networked personal video recorders (PVRs) (e.g., ReplayTV), for example. Such applications may further include non-real-time data transfer applications and streaming applications.
“Streaming”, as used herein, generally refers to a technique for transferring data such that it can be processed as a substantially steady and continuous stream. A streaming data consumer (e.g. a client) typically starts playing (displaying) streamed content before the entire file has been received. This advantageously provides for less delay before content playback proceeds as compared to downloading an entire file ahead-of-time, for example. However, for streaming to work properly, the client must regularly collect and process data quickly enough for smooth playback. This means that if the streaming client receives the data more quickly than required, it needs to buffer excess data. However, if the data doesn't come quickly enough, playback will not be smooth. To avoid such problems, media is typically transported across residential or home networks as files (as fast as possible) using one or more large buffers to store portions of the media until it is ready to be received. While this may be acceptable for pre-recorded media, certain applications, e.g., video surveillance, IP Telephony and “live” content, generate and consume data substantially in real-time. Large buffers can add an intolerable amount of delay for such real-time applications.
An Ethernet connection with 100 Mbps full duplex links and non-blocking switches typically has a large amount of bandwidth (BW) available for transporting a digital audio/video (AV) stream. For such a network, it is unlikely that packet errors will occur, and unless the network is overloaded it is unlikely that packets will get lost. Both of those effects are more likely when at least part of the network is wireless in form. However, in either case, it is quite possible that packets will arrive late. A principal mechanism that may cause packets that are traversing a typical residential Ethernet network to arrive late (or be dropped in the case of a wireless network) would be other data traffic.
Ethernet was originally designed for a common physical medium. Access to the physical medium is controlled by a Carrier Sense Multiple Access-Collision Detection algorithm (CSMA-CD). Access to the medium is not guaranteed. The algorithm focuses on fairness and best effort. Streaming data, by nature, needs to be transported quickly. However, a file transfer application with substantial amounts of data may essentially insist on trying to transport it as fast as possible. In such a case, the file transfer application may consume most of the available bandwidth (BW), thus causing some of the streaming packets to get onto the network late.
Ethernet implementations may typically not use a single collision domain (i.e., use switches with buffers instead of a common wired media or Ethernet Hub). However, excess uncontrolled traffic is still a problem. FIG. 1A shows a typical home network arrangement 10. Packets are distributed from a source to a destination through a hierarchy of network infrastructure devices (NIDs) 22, 24. Exemplary network infrastructure devices include Ethernet switches, routers and hubs, wireless adapters, access points (APs), and bridges. Devices 12, 14, 16, 18 operate as either source or destination devices. Such devices may take the form of computing devices like personal computers (PCs) and/or other networkable devices, such as digital televisions (DTVs) and playback devices, for example. NID 24 may be operatively coupled to a gateway 40 that provides connectivity between network 10 and the global interconnection of computers and computer networks commonly referred to as the Internet. The gateway may typically route data traffic between device 12, 14, 16, 18 and the Internet via NID 24. Network 10 may take the form of a residential network, for example.
In a typical scenario a user desires to stream video from device 12 (that may take the form of a PC, for example) to device 16 (that may take the form of a digital television (DTV), for example) at a data rate of around 10 Mbps. Connection links 31, 35 and 37 operate to couple the source and destination devices via NIDs 22, 24, and may take the form of wired 100 Mbps Ethernet links. Where the amount of other traffic on the network is relatively low, such an application may perform reasonably well. However, in the case where a second user also desires to perform certain tasks that require network processing, such as transferring a relatively large data file (e.g. digital movie) from device 14 (that may take the form of a PC, for example) to device 18 (that may take the form of another PC, for example) connected via connection links 33, 35 and 39 (e.g. 100 Mbps Ethernet link), problems may arise. Since that transfer is a simple file transfer, a common implementation is for that file to be transferred as fast as the network and participating processors permit. Accordingly, device 14 may typically always have a packet available to send such that as soon as Ethernet Link 33 is available, the packet will be transferred. This will continue until the receive buffer in NID 22 is full or the file transfer is complete. If the buffer fills up, NID 22 may exercise some sort of flow control or may simply drop the packet. Once the buffer in NID 22 has room for more packets, packet transfer will resume. As can be seen from FIG. 1A, link 35 is carrying both sets of traffic. Where that link becomes saturated (i.e., the link transfers packets at its maximum capacity), both streaming and file transfer applications will experience problems such as packet delay with jitter. Although the delay and jitter may not be critical to the file transfer application, it may have deleterious effects on the streaming application as previously described. Accordingly, the rapid transport of large media files across the network may cause streaming applications to function poorly or improperly. Examples of rapid file transport may include sending a file from a PC to a printer and media distribution applications.
Wireless communications links exacerbate this problem. The total bandwidth (BW) available may be on the order of 54 Mbps. After accounting for media contention and headers, the actual throughput may be around about 30 Mbps. This BW is shared among all wireless devices on that sub-network, such that a single collision domain exists. As more packets attempt access onto the wireless channel, more collisions result. This in turn reduces the amount of available BW for all of the applications. Thus, the effect on wireless networks may be even more severe than that described above for a wired network. Alternative systems and methods for ensuring QoS in such conditions are desired.